在進到 Health Check Monitoring 前,先講兩個我認為在部署 Inference Service 常會遺漏的兩個事情: Error Handling 和 Latency
一個 Inference Endpoint 可能會愈倒以下幾種錯誤
而這些狀況若是你都讓 Endpoint HTTP Response 500 或是回傳 200 但是是一個 Default 的 Inference Score 都會造成者個系統出現很大的問題
這裡介紹幾個經驗上的準則
以下我們舉幾個常見範例:
要正確的回答以上的 Status Code 好的 try-except 就非常重要,另外也需要搭配 Logger 等系統把錯誤日誌記錄下來才好快速定位問題
另外一個比較棘手的問題是 Timeoue,也是就是 Latency 問題,有時候模型還沒有任何的 Response 但是由於 Invoke 方有時間壓力,並有設置 Request Timeout 就會出現錯誤,好的方法是去測試模型的平均 Timeout
Timeout 最好的解決方式就是上線前有壓力測試的報告和上線後的監控,有了這些才好讓 Invoke 方去評估是否需要做更多不同的處理方式,常見的處理方式除了加大機器和平行化之外,還可以用 Cache, 改資料格式如 grpc 甚至是架構上改 Polling 等等